<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="ERzB9" id="ERzB9"><span data-lake-id="u69b89ddb" id="u69b89ddb">典型回答</span></h1>
  <p data-lake-id="u75d6d36c" id="u75d6d36c"><br></p>
  <p data-lake-id="u1392dde4" id="u1392dde4"><span data-lake-id="uf14d7d42" id="uf14d7d42">跨域访问问题（Cross-Origin Resource Sharing，CORS）是由浏览器的同源策略引起的安全限制。同源策略是一种浏览器安全策略，它要求网页中的所有资源必须来自同一个域名、协议和端口，否则浏览器会阻止跨域的资源请求。</span></p>
  <p data-lake-id="u78635ade" id="u78635ade"><span data-lake-id="u29ab3120" id="u29ab3120">​</span><br></p>
  <p data-lake-id="u101aab91" id="u101aab91"><span data-lake-id="u797bb9c5" id="u797bb9c5">所以，如果在浏览器访问过程中发现域名、端口或者协议不同的时候，就会出现跨域问题。</span></p>
  <p data-lake-id="u204279ec" id="u204279ec"><span data-lake-id="u786e1a5e" id="u786e1a5e">​</span><br></p>
  <ol list="u3da37a0b">
   <li fid="ufe28fbbe" data-lake-id="ua9fae148" id="ua9fae148"><span data-lake-id="ub60e9ccd" id="ub60e9ccd">域名不同：如从a.com的页面请求b.com的资源。</span></li>
   <li fid="ufe28fbbe" data-lake-id="u8ab5ec61" id="u8ab5ec61"><span data-lake-id="uf6a76586" id="uf6a76586">协议不同：如从http的页面请求https的资源。</span></li>
   <li fid="ufe28fbbe" data-lake-id="u8fd9eea3" id="u8fd9eea3"><span data-lake-id="uacfac883" id="uacfac883">端口不同：当页面的端口与请求的资源的端口不一致时，同样会触发跨域问题。</span></li>
  </ol>
  <p data-lake-id="u7c247408" id="u7c247408"><span data-lake-id="uf7b21f3b" id="uf7b21f3b">​</span><br></p>
  <p data-lake-id="u81c31e87" id="u81c31e87"><span data-lake-id="u5ec4ea86" id="u5ec4ea86">​</span><br></p>
  <p data-lake-id="u7842804b" id="u7842804b"><span data-lake-id="u941df566" id="u941df566">解决跨域访问问题的方法有以下几种：</span></p>
  <p data-lake-id="u9b84acdb" id="u9b84acdb"><span data-lake-id="uad7f5c7a" id="uad7f5c7a">​</span><br></p>
  <ol list="ufe42a0a5">
   <li fid="ue2bfa6a5" data-lake-id="u2efe4f6e" id="u2efe4f6e"><span data-lake-id="u1865ae1a" id="u1865ae1a">CORS（推荐）：CORS是一种机制，通过在服务器端设置相应的响应头来解决跨域问题。服务器在响应中添加</span><span data-lake-id="u57bd8055" id="u57bd8055">Access-Control-Allow-Origin</span><span data-lake-id="u372efcb2" id="u372efcb2">头，指定允许跨域访问的域名或通配符</span><span data-lake-id="u8bc3b44e" id="u8bc3b44e">*</span><span data-lake-id="u795b53e3" id="u795b53e3">，使得浏览器可以放行跨域请求。CORS是目前最常用的解决跨域问题的方式，支持现代浏览器。</span></li>
  </ol>
  <p data-lake-id="u38297cb4" id="u38297cb4"><span data-lake-id="u090b4353" id="u090b4353">​</span><br></p>
  <pre lang="java"><code>
@CrossOrigin(origins = "*")
public class HollisTestController {
    
}
</code></pre>
  <p data-lake-id="u71187971" id="u71187971"><br></p>
  <p data-lake-id="u310aa6a6" id="u310aa6a6"><br></p>
  <ol list="ufe42a0a5" start="2">
   <li fid="ue2bfa6a5" data-lake-id="u107fb652" id="u107fb652"><span data-lake-id="ud562a2dc" id="ud562a2dc">JSONP：JSONP是一种跨域通信的技术，它利用</span><span data-lake-id="u3b9fb254" id="u3b9fb254">&lt;script&gt;</span><span data-lake-id="uf86a81f3" id="uf86a81f3">标签可以跨域访问的特性，通过动态创建</span><span data-lake-id="u37eb25a4" id="u37eb25a4">&lt;script&gt;</span><span data-lake-id="u8011187d" id="u8011187d">标签来加载跨域资源，服务器返回一个包含回调函数的JavaScript脚本，客户端通过回调函数处理响应数据。不过JSONP只支持GET请求，且只能用于跨域请求JSON数据。</span></li>
  </ol>
  <p data-lake-id="u5cd32664" id="u5cd32664"><br></p>
  <ol list="ufe42a0a5" start="3">
   <li fid="ue2bfa6a5" data-lake-id="u7ee20b37" id="u7ee20b37"><span data-lake-id="uc1c64560" id="uc1c64560">代理服务器：可以通过在同源域名下设置一个代理服务器，实现跨域访问。前端将请求发送给代理服务器，代理服务器再转发请求给目标服务器，并将响应返回给前端，从而绕过跨域限制。这种方式需要部署额外的代理服务器，适用于一些特殊情况。</span></li>
  </ol>
  <p data-lake-id="ub5ed4c59" id="ub5ed4c59"><span data-lake-id="u941dc8ff" id="u941dc8ff">​</span><br></p>
  <p data-lake-id="u3d4e572b" id="u3d4e572b"><span data-lake-id="ufb61d136" id="ufb61d136">​</span><br></p>
  <h1 data-lake-id="xABfS" id="xABfS"><span data-lake-id="u17ca8496" id="u17ca8496">扩展知识</span></h1>
  <h2 data-lake-id="rvvBS" id="rvvBS"><span data-lake-id="u24c9d80b" id="u24c9d80b">二级域名跨域吗？</span></h2>
  <p data-lake-id="u535e1495" id="u535e1495"><br></p>
  <p data-lake-id="u3ec56052" id="u3ec56052"><span data-lake-id="u53fa55a3" id="u53fa55a3">www.hollischuang.com中获取 www.a.hollischuang.com中的资源，是不会出现跨域问题的， 因为他们的一级域名是一样的。</span></p>
  <p data-lake-id="u3ab6cfc6" id="u3ab6cfc6"><span data-lake-id="ufec7f7ae" id="ufec7f7ae">​</span><br></p>
  <p data-lake-id="u7eb7d144" id="u7eb7d144"><span data-lake-id="u4427fe67" id="u4427fe67"><br><br></span></p>
 </body>
</html>